package com.cqrt.service;

import com.alibaba.fastjson.JSONObject;
import com.cqrt.dto.TransJobDTO;
import com.cqrt.entity.RTPreConstraintDO;
import com.cqrt.rt.basic.request.BatchOperationRequest;
import com.cqrt.vo.RTExecutorJobVO;
import com.cqrt.vo.RTProjectRelationVO;
import com.github.pagehelper.PageInfo;
import com.hustcad.plm.rpm.model.dto.admin.TyppmProjectDTO;
import com.hustcad.plm.rpm.model.vo.change.CreateChangeInfoRequestVO;
import com.hustcad.plm.rpm.model.vo.change.PlanChangeInfoVO;
import org.springframework.data.repository.query.Param;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletResponse;

public interface RTProjectService {

    PageInfo<RTExecutorJobVO> queryJobByExecutor(String executorOID, int page, int pageSize);

    void updatePreConstraint(String activeID);

    String importAnnualProject(MultipartFile file) throws Exception;

    RTProjectRelationVO queryProjectRelation(String projectOid, int page, int pageSize);

    PageInfo<RTPreConstraintDO> queryProjectPreConstraint(String projectOid, int page, int pageSize);

    void batchInsertOrUpdateProject(BatchOperationRequest<RTPreConstraintDO> request);

    void exportProjectPlanExcel(HttpServletResponse response, String ObjectId);

    void saveAsProject(TyppmProjectDTO project);

    void transJob(TransJobDTO transJobDTO);

    boolean checkAnnualProjectAdmin();

    String getPrjDescription(String oid);

    List<String> collectCommonProjectName();

    CreateChangeInfoRequestVO getChangeInfo(PlanChangeInfoVO params);

    void synchronizationParentJobOutRules(JSONObject params);

    Map<String, Object> selectDetsMeasures(@Param("code") String code);

    String selectProjectNameByProjectCode(String projectNo);

    CreateChangeInfoRequestVO directlyPublishPlan(PlanChangeInfoVO params);

    List<String> selectAllProjectIdentifier(String key);

    String selectSecurity(String oid);

    CreateChangeInfoRequestVO createPlanChangeForm(JSONObject requestVO);
}
